// 这个文件是Plop的入口文件，需要导出一个函数，这个函数接收一个plop对象，用于创建生成器任务
module.exports = plop => {
  // 设置一个生成器，第一个参数是项目名称，第二个函数是对象，对应设置选项
  plop.setGenerator("compontent", {
    // 描述
    description: "create a component",
    // 命令行交互问题
    prompts: [
      // 一个问题对应一个对象，配置参考自定义Generator
      {
        type: "input",
        name: "name",
        message: "component name",
        default: "MyComponent"
      }
    ],
    // 完成命令行交互过后完成的一些动作
    actions: [
      //每一个对象都是一个动作
      {
        type: "add", // 代表添加文件
        // 被添加的文件在输出的哪个路径，双花括号插值表达式可以获取交互得到的数据
        path: "src/components/{{name}}/{{name}}.js",
        // 模板文件是什么
        templateFile: "plop-templates/component.hbs"
      },
      {
        type: "add",
        path: "src/components/{{name}}/{{name}}.css",
        templateFile: "plop-templates/component.css.hbs"
      }
    ]
  })
}
